
// <copyright file="IDbActivityStrategy.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   Description of IDbActivityStrategy.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Data
{
    using System.Data;

    /// <summary>
    ///     Description of IDbActivityStrategy.
    /// </summary>
    public interface IDbActivityStrategy
    {
        #region Public Methods and Operators

        /// <summary>
        /// The create message from record.
        /// </summary>
        /// <param name="record">
        /// The record.
        /// </param>
        /// <returns>
        /// The <see cref="object"/>.
        /// </returns>
        object CreateMessageFromRecord(IDataRecord record);

        /// <summary>
        /// The initialize command for dml.
        /// </summary>
        /// <param name="command">
        /// The command.
        /// </param>
        /// <param name="dmlOperationType">
        /// The dml operation type.
        /// </param>
        /// <param name="message">
        /// The message.
        /// </param>
        void InitializeCommandForDml(IDbCommand command, DmlOperationTypes dmlOperationType, object message);

        /// <summary>
        /// The initialize command for select.
        /// </summary>
        /// <param name="command">
        /// The command.
        /// </param>
        /// <param name="clause">
        /// The clause.
        /// </param>
        void InitializeCommandForSelect(IDbCommand command, string clause);

        #endregion Public Methods and Operators
    }
}
